home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1995 April / Internet Tools.iso / infoserv / www / cern / dev / www-talk.9301-9306.Z / www-talk.9301-9306 / text0335.txt < prev    next >
Encoding:
Text File  |  1995-04-24  |  7.0 KB  |  197 lines

  1. > Date: Thu, 12 Nov 92 14:41:02 CST
  2. > From: Dan Connolly <connolly@pixel.convex.com>
  3.  
  4.  
  5. > >How about ...using
  6. > >
  7. > >> <dd><a HREF="wais://quake.think.com/INFO" RELATIONSHIP=SEARCHME>search</a>
  8.  
  9. > Sure... I don't have any strong opinions about the syntax, except that
  10. > RELATIONSHIP is longer than 8 characters, and that will be an issue
  11. > with some SGML parsers.
  12.  
  13. Of course. We could call it REL.  (That's what you get with IBM-derived  
  14. products ;-)
  15.  
  16. > This opens up the discussion of link semantics from a while ago. Some
  17. > folks suggested a TYPE or ACTION or RELATIONSHIP attribute on anchors:
  18.  
  19. > SEE    (the default) see HREF, i.e. this anchor refers to HREF
  20. > INCLUDE    include HREF at this point in the document (for quoting)
  21. > REPLACE    replace the anchor text with HREF (another quoting mechanism)
  22. > AUGMENT    display HREF along with this document (for figures, etc.)
  23. > SEARCH    search HREF and display the results
  24. >
  25. > You could have zillions of options here: DEFINE (HREF defines this anchor),
  26. > UPDATE (HREF is a new version of this document), TRANSLATE (HREF is
  27. > some converted form of this document). But I suggest we call the attribute
  28. > ACTION, and only create a new one when there is a user-interface impact.
  29. > So the ACTION attribute is a hint from the author on how to display
  30. > the document. That way, all the DEFINE, UPDATE, TRANSLATE, etc fall under
  31. > SEE above.
  32.  
  33. There seem to be two classes of attribute we are talking about here.
  34. Some attributes express a relationship between the documents (or
  35. relationships between objects described by the documents). These are
  36. relationships like
  37.  
  38.     A    is a previous version of    B
  39.     A    describes the author of        B
  40.     
  41. etc.  These add semantics to the web, allow interesting navigational
  42. functions.
  43.  
  44. Other attributes are directions to the client app., to so something:
  45.  
  46.   When you display A, also display B
  47.   When you display A, embed B
  48.   When you print A, also print B
  49.   When you follow this link, embed B
  50.   When you follow this link, search B
  51.   
  52.  
  53. Let's bear in mind the idea of moving toward arbitrary objects.
  54. The OO paradigm (the current one, not the only possible one)
  55. has objects which each have a class, which has a set of
  56. methods, each of which has a set of parameters, each of which
  57. has a class. Ok?
  58.  
  59. Suppose documents are objects. We have two methods now,
  60.  
  61.     render()      returning HTML
  62.     search(text)    returning HTML
  63.  
  64. each taking the object ID as an implicit parameter. That's OK.
  65. These are neat functions. Suppose we generalize.
  66.  
  67. First generalization: the render():HTML is only one of many functions
  68. which the object supports. The format negotiation says
  69. "I want render()* where * is preferably ....".
  70.  
  71. In this context the <ISINDEX> tag means "The class of this object
  72. supports search(text):HTML method".  The SEARCHME link
  73. looks more like some advance notice type information [[yuk -- I hate
  74. having info in two places... links can get out of date -- but never mind]]
  75.  
  76.     "The object references supports search()"
  77.     
  78. plus also the client advice 
  79.  
  80.  
  81.   "When you follow this link, search B"
  82.  
  83. I would separate these two things, personally myself. the first is useful
  84. for deciding on the icon to display, without the second which coud
  85. independently be any of the other client hints mentioned above.
  86.  
  87. In this light, it would seem there are some obvious extentions!
  88. Let's skip the debate about whether you want the client advice attribute
  89. to make an automatic search (OK, let's put it in, no harm in it)
  90. and focus on the type declaration. Whether it is declariung stuff
  91. about the document itself or a related document is a trivial difference,
  92. the difference between the LINK and the A tags, in fact.
  93.  
  94. So lets generalize ISINDEX. We have a choice. We can declare the class
  95. (or any superclass) of an object. Or we can declare a method. In fact,
  96. in the multiple inheritance view, these are very similar as you can
  97. imagine a class which only supports one method, and then construct
  98. classes out of inheritance only from those classes. So declaring a
  99. class (set of methods) is more general than declaring a method.
  100.  
  101. An immediate application of this will be declaring things like
  102. Z39.50 objects which support various search methods with all kinds
  103. of different input parameters.  But one wouldn't of couse stop there....
  104.  
  105. Classes, like representations, would have to be registered. Either registered
  106. or defined in a suitable language by a document. Ha! we know how to handle  
  107. that.. we don't even have to worry about the class description language
  108. because we can apply format negotiation to that.  In fact, registreation
  109. of a class with IANA would involve storing the class description in a document  
  110. was in a well-defined place, and of which everyone would take copies.
  111. I mean like maybe even at compile time for classic classes.
  112. (I would expect that a convention for getting an icon graphic from
  113. the same directory as the class description would be kinda nice.)
  114.  
  115. So a document start with information about itself
  116.  
  117.     <!doctype HTML USDN=x.500:/ch/cern/cn/92/tbl
  118.     URL=http://info.cern.ch/tbl/mydoc.html>
  119.     URL=ftp://info.cern.ch/pub/www/doc/mydoc.html>
  120.  
  121.     <type USDN=x.500:/internet/iana/www/textindex
  122.     URL=http://www.iana.net/class/www/textindex.asn1
  123.     ACTION=textsearch>
  124.  
  125.     Hi this is an index of all the widgets in the wdgetbox.
  126.  
  127. We need one (1) language to start with for defining the classes.
  128. ASN/1 or a SGML version of ASN/1? So long as it can include
  129. inheritance from other classes using a hypertext reference.
  130.  
  131. We still require all documents to be renderable, which just means
  132. that all objects support render() returning either HTML or
  133. ascii.
  134.  
  135.  
  136. > >The argument for the W3 model is that often the user will want to search
  137. > >or not search a single index, and he doesn't want two operations: one to
  138. > >select the fact that he wants to search (click) and one to search
  139. > >(typetypetyepe return).  He just wants one.
  140.  
  141. > But in practice, it's the same: if I quote a wais source from this
  142. > mail message, you'll have to 1) traverse the link to the index,
  143. > and 2) search the index.
  144.  
  145. Like with the chicken and the egg, it depends when you start counting the
  146. clicks.
  147.  
  148.  
  149.  
  150.  
  151.  
  152. > It makes sense to me to have the links mirror protocol transactions.
  153. > In other words, if we have a two step protocol:
  154.  
  155. > client: "I want to do a search."
  156. > server: "OK... here's the query form."
  157. > client: "Here's the filled-out query form."
  158. > server: "OK... here are the results."
  159.  
  160. Isn't that slower? In fact what happens is the user thinks like
  161. that, but the client, knowing that a search is possible, happens
  162. to put up the search panel.  Could we in fact use a 
  163.  
  164. "when you display A, display B too" link, here?
  165.  
  166.  
  167. >... 
  168.  
  169. > I don't think the network will ever be a non-issue.
  170.  
  171. I agree. Speed of light, for one thing.
  172.  
  173.  
  174. > Sure... we need to treat <ISINDEX> as shorthand for
  175. > <A NAME="k" HREF=_this_document_ ACTION=SEARCH></a>
  176.  
  177. > As for making it global to the document, you could just treat the
  178. > first SEARCH anchor as the default index to search.
  179.  
  180. I would prefer to use a document-wide LINK element
  181. in the header as a document-wide analogue of the A element
  182. but that's a detail.
  183.  
  184.     Tim
  185.     
  186.  
  187.  
  188.